package com.wrial.simple;
/*
 * @Author  Wrial
 * @Date Created in 11:59 2020/3/26
 * @Description  有效的括号
 *  给定一个只包括 '('，')'，'{'，'}'，'['，']' 的字符串，判断字符串是否有效。
 */

import java.util.Stack;

public class LeetCode_20 {

    // 使用栈来完成
    public boolean isValid(String s) {

        if (s == null || s.length() == 0) return true;
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < s.length(); i++) {

            if (stack.size() != 0 && isFit(stack.peek(),s.charAt(i))) {
                stack.pop();
            } else {
                stack.push(s.charAt(i));
            }
        }
        if (stack.size() == 0) return true;
        else return false;
    }

    private boolean isFit(Character peek, char charAt) {
        if (peek == '(' && charAt==')') return true;
        if (peek == '{' && charAt=='}') return true;
        if (peek == '[' && charAt==']') return true;
        return false;

    }

    public static void main(String[] args) {
        System.out.println(new LeetCode_20().isValid("()"));
    }

}


